/* Copyright 2019-2021 Canaan Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include "../module_builder.h"
#include <nncase/ir/ops/k210/runtime_type_utils.h>
#include <nncase/runtime/k210/runtime_types.h>

using namespace nncase;
using namespace nncase::codegen;
using namespace nncase::codegen::k210;
using namespace nncase::ir;
using namespace nncase::ir::k210;
using namespace nncase::runtime;
using namespace nncase::runtime::k210;

void k210_module_builder::emit(kpu_upload &node) {
    auto &input = allocation(node.input());
    auto &output = allocation(node.output());

    kpu_upload_options options{};
    options.input = input.runtime_type();
    options.output = output.runtime_type();
    options.in_shape = to_kpu_shape(input.shape);
    text_writer().write(options);
}
